软件开发ddns在Ubuntu系统上安装和配置 ddns-go 的详细步骤
子非鱼
以下是 在Ubuntu系统上安装和配置 ddns-go 的详细步骤指南,涵盖 二进制安装 和 Docker部署 两种方式,适合不同需求的用户。
一、二进制安装(推荐)
1. 准备工作
- 系统要求:Ubuntu 18.04/20.04/22.04(支持 x86_64/ARM 架构)。
- 依赖项:确保已安装
curl 和 tar:1 2
| sudo apt update sudo apt install -y curl tar
|
2. 下载 ddns-go 二进制文件
根据 CPU 架构选择对应版本(以 x86_64 为例):
1 2 3 4 5 6 7 8 9
| mkdir -p /usr/local/bin/ddns-go cd /usr/local/bin/ddns-go
curl -LO "https://github.com/jeessy2/ddns-go/releases/download/v6.7.7/ddns-go_6.7.7_linux_x86_64.tar.gz"
tar zxvf ddns-go_6.7.7_linux_x86_64.tar.gz
|
3. 安装服务
1 2 3 4 5
| chmod +x ddns-go
sudo ./ddns-go -s install
|
4. 配置 systemd 服务(可选优化)
如果安装失败,可手动创建服务文件:
1
| sudo nano /etc/systemd/system/ddns-go.service
|
粘贴以下内容(根据实际路径调整):
1 2 3 4 5 6 7 8 9 10 11
| [Unit] Description=DDNS-GO Service After=network.target
[Service] ExecStart=/usr/local/bin/ddns-go/ddns-go Restart=always User=root
[Install] WantedBy=multi-user.target
|
保存后启动服务:
1 2 3
| sudo systemctl daemon-reload sudo systemctl enable ddns-go sudo systemctl start ddns-go
|
5. 开放防火墙端口
默认服务监听端口为 9876,需开放防火墙:
1 2
| sudo ufw allow 9876/tcp sudo ufw reload
|
6. 访问 Web 配置界面
在浏览器中访问:
首次访问会提示初始化配置(用户名:admin,密码:admin)。
二、Docker 部署(推荐用于隔离环境)
1. 安装 Docker
1 2
| sudo apt update sudo apt install -y docker.io
|
2. 拉取并运行容器
1 2 3 4 5 6
| docker run -d \ --name ddns-go \ --restart=always \ --net=host \ -v /opt/ddns-go:/root \ jeessy/ddns-go
|
--net=host:共享主机网络,简化 IPv6 支持。
-v /opt/ddns-go:/root:挂载配置文件到宿主机。
3. 访问 Web 界面
浏览器访问:
三、核心配置(Web 界面操作)
1. 登录初始配置
- 首次访问需修改默认密码(admin/admin)。
- 填写 DNS 服务商信息(如阿里云、腾讯云、Cloudflare):
- DNS 服务商:选择对应平台。
- AccessKey/SecretKey:填写 API 密钥(需在 DNS 平台生成)。
- 域名:输入需动态解析的域名(如
example.com)。
- IP 获取方式:选择
自动检测 或指定网卡(如 eth0)。
2. 高级设置(可选)
- IPv6 支持:勾选
启用 IPv6,并选择获取方式(如 通过接口获取)。
- 同步间隔:默认 5 分钟,可自定义(单位:秒)。
- Webhook 通知:填写回调 URL,用于接收状态变更通知。
3. 保存并验证
点击保存后,服务会自动开始检测 IP 变化。可在 日志页面 查看更新记录。
四、验证服务状态
1. 检查服务运行状态
1 2 3
| systemctl status ddns-go
docker ps -a | grep ddns-go
|
2. 查看日志
- 二进制安装:
1
| journalctl -u ddns-go -f
|
- Docker:
3. 测试域名解析
1 2 3
| ping <your_domain>
ping6 <your_domain>
|
五、常见问题与解决方案
| 问题 |
原因与解决方法 |
| 无法访问 Web 界面 |
检查防火墙是否开放 9876 端口;确认服务是否正常运行。 |
| 域名未更新 |
检查 DNS 密钥是否正确;查看日志确认 API 调用是否失败。 |
| IPv6 无法解析 |
确保系统已获取 IPv6 地址;检查路由器防火墙是否关闭。 |
| 服务启动失败 |
检查二进制文件权限(chmod +x);Docker 容器是否冲突。 |
六、卸载 ddns-go
二进制安装
1 2
| sudo ./ddns-go -s uninstall rm -rf /usr/local/bin/ddns-go
|
Docker 安装
1 2
| docker stop ddns-go && docker rm ddns-go docker rmi jeessy/ddns-go
|
七、总结
- 二进制安装:适合需要精细控制服务配置的用户,直接集成到系统服务。
- Docker 部署:适合希望快速启动且隔离环境的用户,便于迁移和备份。
- 适用场景:家庭宽带动态 IP 管理、IPv6 设备远程访问、企业多域名动态解析。